global theLastName,theFirstName,theSSnumber,theCode, theMinorScores,theMinorGrades,theMinorAverages, theExamScores,theExamGrades,theExamAverages, thePaperScores,thePaperGrades,thePaperAverages, theFinalScore,theFinalGrade,theTermScore,theTermGrade
on opencard
global RepPrefsSet
put false into RepPrefsSet
end opencard
-- part 1 (button)
-- low flags: 00
-- high flags: A005
-- rect: left=17 top=101 right=123 bottom=117
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Last Name
----- HyperTalk script -----
on mouseUp
global theLastName
put the hilite of me into theLastName
end mouseUp
-- part 2 (button)
-- low flags: 00
-- high flags: A005
-- rect: left=17 top=125 right=147 bottom=117
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: First Name
----- HyperTalk script -----
on mouseUp
global theFirstName
put the hilite of me into theFirstName
end mouseUp
-- part 3 (button)
-- low flags: 00
-- high flags: A005
-- rect: left=17 top=150 right=172 bottom=117
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: SS number
----- HyperTalk script -----
on mouseUp
global theSSNumber
put the hilite of me into theSSNumber
end mouseUp
-- part 4 (button)
-- low flags: 00
-- high flags: A005
-- rect: left=17 top=175 right=197 bottom=117
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Code
----- HyperTalk script -----
on mouseUp
global theCode
put the hilite of me into theCode
end mouseUp
-- part 5 (button)
-- low flags: 00
-- high flags: A005
-- rect: left=17 top=199 right=221 bottom=125
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Minor Scores
----- HyperTalk script -----
on mouseUp
global theMinorScores
put the hilite of me into theMinorScores
end mouseUp
-- part 6 (button)
-- low flags: 00
-- high flags: A005
-- rect: left=17 top=224 right=246 bottom=125
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Minor Grades
----- HyperTalk script -----
on mouseUp
global theMinorGrades
put the hilite of me into theMinorGrades
end mouseUp
-- part 7 (button)
-- low flags: 00
-- high flags: A005
-- rect: left=16 top=248 right=270 bottom=140
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Minor Averages
----- HyperTalk script -----
on mouseUp
global theMinorAVerages
put the hilite of me into theMinorAverages
end mouseUp
-- part 8 (button)
-- low flags: 00
-- high flags: A005
-- rect: left=188 top=101 right=123 bottom=296
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Exam Scores
----- HyperTalk script -----
on mouseUp
global theExamScores
put the hilite of me into theExamScores
end mouseUp
-- part 9 (button)
-- low flags: 00
-- high flags: A005
-- rect: left=188 top=125 right=147 bottom=296
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Exam Grades
----- HyperTalk script -----
on mouseUp
global theExamGrades
put the hilite of me into theExamGrades
end mouseUp
-- part 10 (button)
-- low flags: 00
-- high flags: A005
-- rect: left=188 top=149 right=171 bottom=313
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Exam Averages
----- HyperTalk script -----
on mouseUp
global theExamAverages
put the hilite of me into theExamAverages
end mouseUp
-- part 11 (button)
-- low flags: 00
-- high flags: A005
-- rect: left=188 top=174 right=196 bottom=296
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Paper Scores
----- HyperTalk script -----
on mouseUp
global thePaperScores
put the hilite of me into thePaperScores
end mouseUp
-- part 12 (button)
-- low flags: 00
-- high flags: A005
-- rect: left=188 top=198 right=220 bottom=296
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Paper Grades
----- HyperTalk script -----
on mouseUp
global thePaperGrades
put the hilite of me into thePaperGrades
end mouseUp
-- part 13 (button)
-- low flags: 00
-- high flags: A005
-- rect: left=188 top=222 right=244 bottom=316
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Paper Averages
----- HyperTalk script -----
on mouseUp
global thePaperAverages
put the hilite of me into thePaperAverages
end mouseUp
-- part 14 (button)
-- low flags: 00
-- high flags: A005
-- rect: left=356 top=101 right=123 bottom=486
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Final Exam Score
----- HyperTalk script -----
on mouseUp
global theFinalScore
put the hilite of me into theFinalScore
end mouseUp
-- part 15 (button)
-- low flags: 00
-- high flags: A005
-- rect: left=356 top=125 right=147 bottom=488
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Final Exam Grade
----- HyperTalk script -----
on mouseUp
global theFinalGrade
put the hilite of me into theFinalGrade
end mouseUp
-- part 16 (button)
-- low flags: 00
-- high flags: A005
-- rect: left=356 top=149 right=171 bottom=464
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Term Score
----- HyperTalk script -----
on mouseUp
global theTermScore
put the hilite of me into theTermScore
end mouseUp
-- part 17 (button)
-- low flags: 00
-- high flags: A005
-- rect: left=356 top=174 right=196 bottom=464
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Term Grade
----- HyperTalk script -----
on mouseUp
global theTermGrade
put the hilite of me into theTermGrade
end mouseUp
-- part 18 (button)
-- low flags: 00
-- high flags: A003
-- rect: left=368 top=295 right=317 bottom=468
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Cancel
----- HyperTalk script -----
on mouseUp
visual effect dissolve
go card "first record"
end mouseUp
-- part 19 (button)
-- low flags: 00
-- high flags: A003
-- rect: left=194 top=296 right=318 bottom=325
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Clear All Choices
----- HyperTalk script -----
on mouseUp
repeat with count = 1 to 17
get the hilite of card button count
if it then
get the loc of card button count
click at it
end if
end repeat
get the hilite of card button 24
if it then
get the loc of card button 24
click at it
end if
end mouseUp
-- part 21 (button)
-- low flags: 00
-- high flags: A003
-- rect: left=20 top=296 right=318 bottom=157
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Select All Choices
----- HyperTalk script -----
on mouseUp
repeat with count = 1 to 17
get the hilite of card button count
if not it then
get the loc of card button count
click at it
end if
end repeat
get the hilite of card button 24
if not it then
get the loc of card button 24
click at it
end if
end mouseUp
-- part 24 (button)
-- low flags: 00
-- high flags: A000
-- rect: left=359 top=241 right=288 bottom=476
-- title width / last selected line: 0
-- icon id / first selected line: 26298 / 26298
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Create Column Display
----- HyperTalk script -----
global theLastName,theFirstName,theSSnumber,theCode, theMinorScores,theMinorGrades,theMinorAverages, theExamScores,theExamGrades,theExamAverages, thePaperScores,thePaperGrades,thePaperAverages, theFinalScore,theFinalGrade,theTermScore,theTermGrade,theAbsences
on mouseUp
global stringhold,maxcolumns,numberofcolumns,cardoffset
answer "Include students who withdrew?" with "yes" or "no" or "Cancel"
if it is "yes" then
put true into dodrop
else if it is "no" then
put false into dodrop
else
exit mouseup
end if
put 7 into maxcolumns
go card "first record"
show field "message"
put "Relax..."&return&"This may take"&return&"quite a while." into field "message"
set the lockscreen to true
push card
get the number of this card
put it into start
get the number of last card
put it into finish
go card "rows & columns"
put empty into card field "rows & columns"
put empty into card field "headerfield"
getHeader
if numberofcolumns > maxcolumns then
answer "Too many columns. Change your settings." with "OK" or "Cancel"
if it is "Cancel" then
go card "first record
exit mouseup
else
go to card "report preferences"
exit mouseup
end if
end if
put stringhold into line 1 of card field "headerfield"
put 1 into linecount
repeat with count = start to finish
push card
go card count
set the lockscreen to false
if (bkgnd field "withdrew" is empty) or (dodrop) then
put "Relax..."&return&"This may take"&return&"quite a while." into field "message"
put "Processing record"&&count-cardoffset into line 6 of field "message"
set the lockscreen to true
getaLine
go card "Rows & Columns"
put stringhold into line linecount of card field "Rows & Columns"
put linecount+1 into linecount
go card count
else
pop card
end if
end repeat
pop card
set the lockscreen to false
hide field "message"
beep
visual effect dissolve to gray
go card "rows and columns"
end mouseUp
on getHeader
global theLastName,theFirstName,theSSnumber,theCode, theMinorScores,theMinorGrades,theMinorAverages, theExamScores,theExamGrades,theExamAverages, thePaperScores,thePaperGrades,thePaperAverages, theFinalScore,theFinalGrade,theTermScore,theTermGrade,theAbsences
global stringhold,howmany, numberofcolumns,maxcolumns
global thismanyminors, thismanyexams, thismanypapers
put twelvetab("Last Name") into stringhold
put stringhold&twelvetab("First Name") into stringhold
push card
go card "first record"
howmanycolumns
if numberofcolumns > maxcolumns then exit getheader
--but if we’re still here, then do the following:
If theMinorScores and theMinorGrades then
repeat with count = 1 to thismanyminors
put "Asg#"&count&&"S" into tempscore
put "Asg#"&count&&"G" into tempgrade
put stringhold&eighttab(tempscore) into stringhold
put stringhold&eighttab(tempgrade) into stringhold
end repeat
end if
If theMinorScores and not theMinorGrades then
repeat with count = 1 to thismanyminors
put "Asg#"&count&&"S" into tempscore
put stringhold&eighttab(tempscore) into stringhold
end repeat
end if
If theMinorGrades and not theMinorScores then
repeat with count = 1 to thismanyminors
put "Asg#"&count&&"G" into tempgrade
put stringhold&eighttab(tempgrade) into stringhold
end repeat
end if
if theMinorAverages then
put stringhold&eighttab("Av.M S") into stringhold
put stringhold&eighttab("Av.M G") into stringhold
end if
If theExamScores and theExamGrades then
repeat with count = 1 to thismanyexams
put "Exam"&count&&"S" into tempscore
put "Exam"&count&&"G" into tempgrade
put stringhold&eighttab(tempscore) into stringhold
put stringhold&eighttab(tempgrade) into stringhold
end repeat
end if
If theExamScores and not theExamGrades then
repeat with count = 1 to thismanyexams
put "Exam"&count&&"S" into tempscore
put stringhold&eighttab(tempscore) into stringhold
end repeat
end if
If theExamGrades and not theExamScores then
repeat with count = 1 to thismanyexams
put "Exam"&count&&"G" into tempgrade
put stringhold&eighttab(tempgrade) into stringhold
end repeat
end if
if theExamAverages then
put stringhold&eighttab("Av.E S") into stringhold
put stringhold&eighttab("Av.E G") into stringhold
end if
If thePaperScores and thePaperGrades then
repeat with count = 1 to thismanypapers
put "Papr"&count&&"S" into tempscore
put "Papr"&count&&"G" into tempgrade
put stringhold&eighttab(tempscore) into stringhold
put stringhold&eighttab(tempgrade) into stringhold
end repeat
end if
If thePaperScores and not thePaperGrades then
repeat with count = 1 to thismanypapers
put "Papr"&count&&"S" into tempscore
put stringhold&eighttab(tempscore) into stringhold
end repeat
end if
If thePaperGrades and not thePaperScores then
repeat with count = 1 to thismanypapers
put "Papr"&count&&"G" into tempgrade
put stringhold&eighttab(tempgrade) into stringhold
end repeat
end if
if thePaperAverages then
put stringhold&eighttab("Av.P S") into stringhold
put stringhold&eighttab("Av.P G") into stringhold
end if
if thefinalScore then put stringhold&sixtab("FnlS") into stringhold
if theFinalGrade then put stringhold&fourtab("FnlG") into stringhold
if theAbsences then put stringhold&sixtab ("Absns") into stringhold
if theTermScore then put stringhold&sixtab ("TrmS") into stringhold
if theTermGrade then put stringhold&fourtab("TERM") into stringhold
put stringhold&return into stringhold
pop card
end getHeader
on howmanycolumns
global theLastName,theFirstName,theSSnumber,theCode, theMinorScores,theMinorGrades,theMinorAverages, theExamScores,theExamGrades,theExamAverages, thePaperScores,thePaperGrades,thePaperAverages, theFinalScore,theFinalGrade,theTermScore,theTermGrade,theAbsences
global howmany, numberofcolumns
global thismanyminors, thismanyexams, thismanypapers
put 0 into numberofcolumns
if theSSnumber then put 1+numberofcolumns into numberofcolumns
if theCode then put 1+numberofcolumns into numberofcolumns
if theMinorAverages then put 2+numberofcolumns into numberofcolumns
if theExamAverages then put 2+numberofcolumns into numberofcolumns
if thePaperAverages then put 2+numberofcolumns into numberofcolumns
if theFinalScore then put 1+numberofcolumns into numberofcolumns
if theFinalGrade then put 1+numberofcolumns into numberofcolumns
if theTermScore then put 1+numberofcolumns into numberofcolumns
if theTermGrade then put 1+numberofcolumns into numberofcolumns
if theMinorScores then
getHowManyMinors
put howmany+numberofcolumns into numberofcolumns
end if
if theMinorGrades then
getHowManyMinors
put howmany into thismanyminors
put howmany+numberofcolumns into numberofcolumns
end if
if theExamScores then
getHowManyExams
put howmany into thismanyexams
put howmany+numberofcolumns into numberofcolumns
end if
if theExamGrades then
getHowManyExams
put howmany+numberofcolumns into numberofcolumns
end if
if thePaperScores then
getHowManyPapers
put howmany into thismanypapers
put howmany+numberofcolumns into numberofcolumns
end if
if thePaperGrades then
getHowManyPapers
put howmany+numberofcolumns into numberofcolumns
end if
end howmanycolumns
on getaLine
global theLastName,theFirstName,theSSnumber,theCode, theMinorScores,theMinorGrades,theMinorAverages, theExamScores,theExamGrades,theExamAverages, thePaperScores,thePaperGrades,thePaperAverages, theFinalScore,theFinalGrade,theTermScore,theTermGrade,theAbsences
global stringhold
global thismanyminors, thismanyexams, thismanypapers
get field "last name"
put twelvetab(it) into stringhold
get field "first name"
put stringhold&twelvetab(it) into stringhold
If theMinorScores and theMinorGrades then
repeat with count = 1 to thismanyminors
get field 8+count
put stringhold&eighttab(it) into stringhold
get field 22+count
put stringhold&eighttab(it) into stringhold
end repeat
end if
If theMinorScores and not theMinorGrades then
repeat with count = 1 to thismanyminors
get field 8+count
put stringhold&eighttab(it) into stringhold
end repeat
end if
If theMinorGrades and not theMinorScores then
repeat with count = 1 to thismanyminors
get field 22+count
put stringhold&eighttab(it) into stringhold
end repeat
end if
if theMinorAverages then
get field "av minor s"
put stringhold&eighttab(it) into stringhold
get field "av minor g"
put stringhold&eighttab(it) into stringhold
end if
If theExamScores and theExamGrades then
repeat with count = 1 to thismanyexams
put 38 + count into whichfield
get field whichfield
put stringhold&eighttab(it) into stringhold
get field 41+count
put stringhold&eighttab(it) into stringhold
end repeat
end if
If theExamScores and not theExamGrades then
repeat with count = 1 to thismanyexams
get field 38+count
put stringhold&eighttab(it) into stringhold
end repeat
end if
If theExamGrades and not theExamScores then
repeat with count = 1 to thismanyexams
get field 41+count
put stringhold&eighttab(it) into stringhold
end repeat
end if
if theExamAverages then
get field "av exam s"
put stringhold&eighttab(it) into stringhold
get field "av exam g"
put stringhold&eighttab(it) into stringhold
end if
If thePaperScores and thePaperGrades then
repeat with count = 1 to thismanypapers
get field 46+count
put stringhold&eighttab(it) into stringhold
get field 50+count
put stringhold&eighttab(it) into stringhold
end repeat
end if
If thePaperScores and not thePaperGrades then
repeat with count = 1 to thismanypapers
get field 46+count
put stringhold&eighttab(it) into stringhold
end repeat
end if
If thePaperGrades and not thePaperScores then
repeat with count = 1 to thismanypapers
get field 50+count
put stringhold&eighttab(it) into stringhold
end repeat
end if
if thePaperAverages then
get field "av paper s"
put stringhold&eighttab(it) into stringhold
get field "av paper g"
put stringhold&eighttab(it) into stringhold`
end if
if theFinalScore then
get field "final exam score"
put stringhold&sixtab(it) into stringhold
end if
if theFinalGrade then
get field "final exam grade"
put stringhold&fourtab(it)into stringhold
end if
if theAbsences then
get field "Absences"
put stringhold&sixtab(it) into stringhold
end if
if theTermScore then
get field "term score"
put stringhold&sixtab(it) into stringhold
end if
if theTermGrade then
get field "term grade"
put stringhold&fourtab(it) into stringhold
put stringhold&return into stringhold
end if
end getaLine
function sixteentab instring
get the length of instring
put it into howlong
put 16-howlong into spacer
repeat with count=1 to spacer
put space after instring
end repeat
return instring
end sixteentab
function twelvetab instring
get the length of instring
put it into howlong
put 12-howlong into spacer
repeat with count=1 to spacer
put space after instring
end repeat
return instring
end twelvetab
function eighttab instring
get the length of instring
put it into howlong
put 8-howlong into spacer
repeat with count=1 to spacer
put space after instring
end repeat
return instring
end eighttab
function sixtab instring
get the length of instring
put it into howlong
put 6-howlong into spacer
repeat with count=1 to spacer
put space after instring
end repeat
return instring
end sixtab
function fourtab instring
get the length of instring
put it into howlong
put 4-howlong into spacer
repeat with count=1 to spacer
put space after instring
end repeat
return instring
end fourtab
-- part 25 (button)
-- low flags: 00
-- high flags: 8003
-- rect: left=418 top=33 right=54 bottom=481
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: help!
----- HyperTalk script -----
on mouseUp
set the visible of card field "help" to not the visible of card field "help"
end mouseUp
-- part 27 (button)
-- low flags: 00
-- high flags: A000
-- rect: left=267 top=242 right=289 bottom=342
-- title width / last selected line: 0
-- icon id / first selected line: 12602 / 12602
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Create Report
----- HyperTalk script -----
on mouseUp
answer "Include students who withdrew?" with "yes" or "no" or "Cancel"
if it is "yes" then
put true into dodrop
else if it is "no" then
put false into dodrop
else
exit mouseup
end if
global stringhold,cardOffset
get the short name of this stack
put it into FileName
ask "Name file for Gradebook data" with FileName&".txt"
--if it is empty then exit mouseup
put it into FileName
open file FileName
go card "first record"
put empty into field "fullcolumns"
show field "message"
put "Relax..."&return&"This may take"&return&"quite a while." into field "message"
--set the lockscreen to true
push card
go card "first record"
get the number of this card
put it into start
get the number of last card
put it into finish
put 1 into linecount
getHeadLine
put stringhold into line linecount of field "fullcolumns"
put linecount+1 into linecount
repeat with count = start to finish
push card
--set the lockscreen to false
go card count
if (bkgnd field "withdrew" is empty) or (dodrop) then
put "Relax..."&return&"This may take"&return&"quite a while." into field "message"
getaLine
put "Processing record"&&count-cardOffset into line 6 of field "message"
set the lockscreen to true
pop card
put stringhold into line linecount of field "fullcolumns"
put linecount+1 into linecount
else
pop card
end if
end repeat
pop card
write field "fullcolumns" to file FileName
close file FileName
--set the lockscreen to false
put empty into field "fullcolumns"
hide field "message"
beep
end mouseUp
on getaLine
global theLastName,theFirstName,theSSnumber,theCode, theMinorScores,theMinorGrades,theMinorAverages, theExamScores,theExamGrades,theExamAverages, thePaperScores,thePaperGrades,thePaperAverages, theFinalScore,theFinalGrade,theTermScore,theTermGrade,theAbsences
global stringhold
put false into stringstarted
if theLastName then
get field "last name"
put it into stringhold
put true into stringstarted
end if
if theFirstName then
get field "first name"
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
end if
if theSSnumber then
get field "ss number"
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
end if
if theCode then
get field "code"
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
end if
if theMinorScores and theMinorGrades then
get Howmany (minor)
put it into rptCount
repeat with count = 1 to rptCount
put count+8 into theField
get field theField
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
put count+22 into theField
get field theField
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
end repeat
end if
if theMinorScores and not theMinorGrades then
get Howmany (minor)
put it into rptCount
repeat with count = 1 to rptCount
put count+8 into theField
get field theField
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
end repeat
end if
if theMinorGrades and not theMinorScores then
get Howmany (minor)
put it into rptCount
repeat with count = 1 to rptCount
put count+22 into theField
get field theField
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
end repeat
end if
if theMinorAverages then
get field "av minor s"
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
get field "av minor g"
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
end if
if theExamScores and theExamGrades then
get Howmany (exams)
put it into rptCount
repeat with count = 1 to rptCount
put count+38 into theField
get field theField
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
put count+41 into theField
get field theField
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
end repeat
end if
if theExamScores and not theExamGrades then
get Howmany (exams)
put it into rptCount
repeat with count = 1 to rptCount
put count+38 into theField
get field theField
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
end repeat
end if
if theExamGrades and not theExamScores then
get Howmany (minor)
put it into rptCount
repeat with count = 1 to rptCount
put count+41 into theField
get field theField
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
end repeat
end if
if theExamAverages then
get field "av exam s"
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
get field "av exam g"
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
end if
if thePaperScores and thePaperGrades then
get Howmany (papers)
put it into rptCount
repeat with count = 1 to rptCount
put count+46 into theField
get field theField
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
put count+50 into theField
get field theField
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
end repeat
end if
if thePaperScores and not thePaperGrades then
get Howmany (papers)
put it into rptCount
repeat with count = 1 to rptCount
put count+46 into theField
get field theField
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
end repeat
end if
if thePaperGrades and not thePaperScores then
get Howmany (papers)
put it into rptCount
repeat with count = 1 to rptCount
put count+50 into theField
get field theField
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
end repeat
end if
if thePaperAverages then
get field "av paper s"
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
get field "av paper g"
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
end if
if theFinalScore then
get field "final exam score"
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
end if
if theFinalGrade then
get field "final exam grade"
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
end if
if theAbsences then
get field "absences"
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
end if
if theTermScore then
get field "term score"
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
end if
if theTermGrade then
get field "term grade"
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
end if
put stringhold&return into stringhold
end getaLine
function howmany whichkind
global minorgradetoscore,examgradetoscore,papergradetoscore,thismany
put 0 into thismany
if whichkind = "minor" then
if not minorgradetoscore then
repeat with count = 9 to 22 --the "minor score" fields
get field count
if it is not empty then put count-8 into thismany
end repeat
else
repeat with count = 23 to 36 --the "minor grade" fields
get field count
if it is not empty then
put count-22 into thismany
end if
end repeat
end if
else if whichkind = "exams" then
if not examgradetoscore then
repeat with count = 39 to 41
get field count
if it is not empty then put count-38 into thismany
end repeat
else
repeat with count = 42 to 44
get field count
if it is not empty then
put count-41 into thismany
end if
end repeat
end if
else if whichkind = "papers" then
if not papergradetoscore then
repeat with count = 47 to 49
get field count
if it is not empty then put count-46 into thismany
end repeat
else
repeat with count = 51 to 53
get field count
if it is not empty then
put count-50 into thismany
end if
end repeat
end if
else
put "Foobar in the whichkind ifblock"
end if
return thismany
end howmany
on getHeadLine
global theLastName,theFirstName,theSSnumber,theCode, theMinorScores,theMinorGrades,theMinorAverages, theExamScores,theExamGrades,theExamAverages, thePaperScores,thePaperGrades,thePaperAverages, theFinalScore,theFinalGrade,theTermScore,theTermGrade,theAbsences
--put "Now in getheadline"
--wait 2 seconds
global stringhold,stringstarted
put empty into stringhold
put false into stringstarted
--put "Fixing to get lastname"
if theLastName then
put "Last Name" into stringhold
put true into stringstarted
end if
--put "Fixing to get firstname"
if theFirstName then
get columnLabel("First Name")
end if
--put "Fixing to get SS"
if theSSnumber then
get columnLabel("SS #")
end if
--put "Fixing to get Code"
if theCode then
get columnLabel("Code")
end if
--put "Fixing to get Minorscores & Minorgrades"
if theMinorScores and theMinorGrades then
get Howmany (minor)
put it into rptCount
repeat with count = 1 to rptCount
put "Minor Score"&&count into it
get columnLabel(it)
put "Minor Grade"&&count into it
get columnLabel(it)
end repeat
end if
--put "Fixing to get minorscores"
if theMinorScores and not theMinorGrades then
get Howmany (minor)
put it into rptCount
repeat with count = 1 to rptCount
put "Minor Score"&&count into it
get columnLabel(it)
end repeat
end if
--put "Fixing to get minorgrades"
if theMinorGrades and not theMinorScores then
get Howmany (minor)
put it into rptCount
repeat with count = 1 to rptCount
put "Minor Grade"&&count into it
get columnLabel(it)
end repeat
end if
--put "Fixing to get minoraverages"
if theMinorAverages then
put "Minor Score Average" into it
get columnLabel(it)
put "Minor Grade Average" into it
get columnLabel(it)
end if
--put "Fixing to get examscores & examgrades"
if theExamScores and theExamGrades then
get Howmany (exams)
put it into rptCount
repeat with count = 1 to rptCount
put "Exam"&&count&&"Score" into it
get columnLabel(it)
put "Exam"&&count&&"Grade" into it
get columnLabel(it)
end repeat
end if
--put "Fixing to get Examscores"
if theExamScores and not theExamGrades then
get Howmany (exams)
put it into rptCount
repeat with count = 1 to rptCount
put "Exam"&&count&&"Score" into it
get columnLabel(it)
end repeat
end if
--put "Fixing to get examgrades"
if theExamGrades and not theExamScores then
get Howmany (minor)
put it into rptCount
repeat with count = 1 to rptCount
put "Exam"&&count&&"Grade" into it
get columnLabel(it)
end repeat
end if
--put "Fixing to get Examaverages"
if theExamAverages then
put "Av. Exam Score" into it
get columnLabel(it)
put "Av. Exam Grade" into it
get columnLabel(it)
end if
--put "Fixing to get paperscores & papergrades"
if thePaperScores and thePaperGrades then
get Howmany (papers)
put it into rptCount
repeat with count = 1 to rptCount
put "Paper"&&count&&"Score" into it
get columnLabel(it)
put "Paper"&&count&&"Grade" into it
get columnLabel(it)
end repeat
--put "Fixing to get paperscores"
end if
if thePaperScores and not thePaperGrades then
get Howmany (papers)
put it into rptCount
repeat with count = 1 to rptCount
put "Paper"&&count&&"Score" into it
get columnLabel(it)
end repeat
end if
--put "Fixing to get papergrades"
if thePaperGrades and not thePaperScores then
get Howmany (papers)
put it into rptCount
repeat with count = 1 to rptCount
put "Paper"&&count&&"Grade" into it
get columnLabel(it)
end repeat
end if
--put "Fixing to get paperaverages"
if thePaperAverages then
put "Av. Paper Score" into it
get columnLabel(it)
put "Av. Paper Grade" into it
get columnLabel(it)
end if
--put "Fixing to get finalscore"
if theFinalScore then
--put "Final Exam Score" into it
get columnLabel(it)
end if
--put "Fixing to get finalgrade"
if theFinalGrade then
put "Final Exam Grade" into it
get columnLabel(it)
end if
--put "Fixing to get absences"
if theAbsences then
put "Absences" into it
get columnLabel(it)
end if
--put "Fixing to get termscore"
if theTermScore then
put "TERM SCORE" into it
get columnLabel(it)
end if
--put "Fixing to get termgrade"
if theTermGrade then
put "TERM GRADE" into it
get columnLabel(it)
end if
put stringhold&return into stringhold
end getHeadLine
function columnLabel theLabel
global stringhold,stringstarted
put theLabel into it
if stringstarted then
put stringhold&tab&it into stringhold
else
put it into stringhold
put true into stringstarted
end if
end columnLabel
-- part 26 (field)
-- low flags: 81
-- high flags: 2004
-- rect: left=16 top=94 right=295 bottom=348
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 0
-- font id: 3
-- text size: 9
-- style flags: 0
-- line height: 12
-- part name: help
----- HyperTalk script -----
on mouseup
hide card field "help"
end mouseup
-- part 28 (button)
-- low flags: 00
-- high flags: A005
-- rect: left=356 top=198 right=220 bottom=456
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Absences
----- HyperTalk script -----
on mouseUp
global theAbsences
put the hilite of me into theAbsences
end mouseUp
-- part contents for card part 26
----- text -----
“Create Report” creates a tabbed text file on disk, suitable for importing into a spreadsheet or standard database.
“Create Column Display” creates a columnar display within Hypercard. Get at it thru the "R & C" button on the record cards. The column display always includes first & last names, and a maximum of 7 data columns. This limitation is due to the limited width of a Hypercard screen.
The various check boxes allow you to choose which fields are to appear in the report or display. The buttons "Select all" and "Clear all" provide a quick way to check or uncheck all boxes. After making your choices, click the "Report" or "Display" button.